home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 4
/
FM Towns Free Software Collection 4 - Disc 1.iso
/
t_os
/
tie
/
src
/
edit.h
< prev
next >
Wrap
C/C++ Source or Header
|
1991-10-18
|
7KB
|
221 lines
/*
* TMENU.INF Editor エディタ部のための定義ファイル
*/
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <ctype.h>
#include <math.h>
#include <egb.h>
#include <mos.h>
#include <msdos.cf>
#include "tie.h"
#include "cons.h"
#define MAX_INF 256 /* .inf ファイルの最大エントリ数 */
#define MAX_ICN 128 /* .icn ファイルの最大エントリ数 */
#define OFFSET (100) /* レイア1のX方向オフセット */
#define OFSY (44)
#define CLICK_CANCEL 999 /* 右ボタンによるキャンセル */
#define LINE_PTN (0xCCCCCCCC) /* 点線のパターン */
#define SCR_X1 16 /* アイテム表示領域 */
#define SCR_Y1 73
#define SCR_X2 608
#define SCR_Y2 (73+340)
#define ITEM_X 20 /* アイテム表示位置 */
#define ITEM_Y (SCR_Y1+4)
#define ITEM_X_SIZ 120
#define ITEM_Y_SIZ 68
/* *** メッセージ・ボックスの定義 *** */
#define MAX_DSP_MSG 8 /* メッセージ・ボックスの最大行数 */
#define MAX_BTN_MSG 3 /* ボタンの最大数 */
#define MAX_SW_MSG 8 /* スイッチの最大数 */
/* *** 画面構成 *** */
/* システム行のバック */
#define SYS_X1 0
#define SYS_Y1 0
#define SYS_X2 639
#define SYS_Y2 42
/* スクロール・バーとスクロール・ボタン */
#define MN_X 618
#define MN_Y (SCR_Y1)
#define UP_X (MN_X) /* 逆スクロール・ボタンのX座標 */
#define UP_Y (MN_Y) /* 逆スクロール・ボタンのY座標 */
#define DW_X (MN_X) /* スクロール・ボタンのX座標 */
#define DW_Y (480-32-19-24) /* スクロール・ボタンのY座標 */
#define BAR_X (MN_X) /* スクロール・バーのX座標 */
#define BAR_Y (UP_Y+21) /* スクロール・バーのY座標 */
#define BAR_SIZ (DW_Y-BAR_Y-7) /* スクロール・バーの大きさ */
/* ロード・セーブ・終了ボタン と 機能ボタン */
#define TOP_Y 17 /* システムラインのY座標 */
#define BSIZ_X 21
#define BSIZ_X2 40
#define BSIZ_Y 19
#define EX_X (639-34-2-3)
#define EX_Y 3
#define MD_X 3
#define MD_Y 3
#define FN_X 110 /* 機能ボタンの位置 */
#define FN_Y (TOP_Y)
#define FNSIZX (49+16)
#define FNSIZY 19
/* *** ファンクションの定義 *** */
#define MAX_FUNC 5 /* 移動・削除・交換・編集・複写 */
#define FUNC_MOVE 0
#define FUNC_CHG 1
#define FUNC_DEL 2
#define FUNC_EDIT 3
#define FUNC_COPY 4
#define MULTI_BUF 2
#define INFBUFSIZ ((unsigned)sizeof(INF)) /* ひとつのレコードの大きさ */
#define IR_FNAMELEN 8 /* ファイル名領域の大きさ */
#define IR_NAMELEN 11 /* アイテム名の大きさ */
#define IR_CMDLEN 64 /* コマンドラインの大きさ */
#define IR_FNAMLEN 8 /* ファイル名の大きさ */
#define IR_FEXTLEN 3 /* 拡張子の大きさ */
#define RET_DEFAULT -1
#define RET_LOAD 1
#define RET_SAVE 2
#define RET_QUIT 3
#define RET_MODE 4
#define ERR_NOERROR 1 /* エラーなし */
#define ERR_ABORT -1 /* バッファ破壊後のエラー */
#define ERR_BREAK 0 /* バッファ破壊前のエラー */
typedef struct
{
char fname[IR_FNAMLEN] ; /* ベースネーム */
char dot ; /* "." */
char fext[IR_FEXTLEN] ; /* 拡張子 */
char dirflag ; /* ディレクトリフラグ */
char dum ; /* ダミー */
u_char icon_num ; /* アイコン番号 */
char nulls[15] ; /* Reserve ? */
char space[21] ; /* Reserve ? */
u_char name[13] ; /* アイテム名 */
u_char cmd[IR_CMDLEN] ; /* パス名とパラメータ */
} INF ;
typedef struct
{
char pat[ 128 ] ;
char dummy[ 128 ] ; /* 単なるムダ */
} ICON ;
typedef struct
{
int x, y ; /* カーソル位置 */
char xsiz, ysiz ; /* X, Y 方向の大きさ */
char ptn[256] ;
} MOS ;
typedef struct
{
char pathlist[ 256 ] ; /* パスリスト */
ICON icon[ 128 ] ; /* アイコンパターン */
INF inf[ MAX_INF ] ; /* 現在のデータ */
int maxnum ; /* 現在の最大数 */
INF org_inf[ MAX_INF ] ; /* ロードしたときのデータ */
int org_maxnum ; /* ロードしたときの最大数 */
} INFO ;
extern char *VERSION ;
extern char *DATE ;
extern int active_buf ; /* 現在アクティブなバッファ番号 */
extern INFO info[MULTI_BUF] ; /* マルチ・ファイル・バッファ */
extern ICON icon[ 128 ] ;
extern INF inf[ MAX_INF ] ;
extern int maxnum ;
extern char *msg[ MAX_DSP_MSG ] ;
extern char *msg_error ;
extern char *msg_kakunin ;
extern char *msg_btn1[MAX_BTN_MSG+1] ;
extern char *msg_btn2[MAX_BTN_MSG+1] ;
extern MOS mosptn[] ; /* マウス・カーソル */
extern char ptn_door[], ptn_edit[], ptn_move[] ;
extern int load_count ; /* TMENU.ICN(INF) をロードした回数 */
extern int mos_disp ;
extern int cancel_on ;
extern int now_palet ;
extern CONFIG setup ;
/* tie.c/move.c */
extern int select_mode( char *ttl, char *msg[], char *btn[] ) ;
extern char *save_file( char *file ) ;
extern char *load_file( void ) ;
extern char *select_file( char *, char cmd ) ;
extern int edit_move( char * ) ;
extern void dsp_item( int num, INF *ip, int clear ) ;
extern void del_inf( int ) ;
extern int end_assert( char * ) ;
extern void toupper_inf( INF *ip ) ;
extern void readicon( char *path ) ;
extern int sep_dirmode( char * ) ;
extern void init_file_buf( int max ) ;
extern char *change_buf( char *file ) ;
/* edit.c */
extern int edit_text( char * ) ;
extern void click_cancel( void ) ;
extern void assert( char *ttl, char *msg[] ) ;
extern void set_inf( INF *ip, char *path ) ;
extern void init_inf( INF *ip, char *path, char *title, int icon_num ) ;
extern void refresh_inf( INF *ip ) ;
extern int edit_item( INF *ip ) ; /* 内容編集 */
extern void dsp_menu2( char *, void (*)(), void (*)() ) ;
/* cons.c */
extern int lineedit( int *x,int *y, int len,int *cpos,
int forcol,int bakcol,int curcol, u_char *buf ) ;
extern void KAN_start( void ) ;
extern void KAN_end( void ) ;
extern void typecheck( char type[], char buf[], int width ) ;
extern void keyflush( void ) ;
extern int kbhit( int open_check ) ;
extern int getch( void ) ;
extern void putch( int ch ) ;
extern void wind_close( void ) ;
extern WIND *wind_open( int x,int y, int len,int *curpos,
int col, int bak,int cur, char *init ) ;
extern void MOS_PAD_rdpos( int *sw, int *x, int *y ) ;